﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Itegracion.Framework.Forms;
using System.Text.RegularExpressions;

namespace Itegracion.Comunicaciones.Forms
{
    public partial class fmContacto : fmMantenimiento
    {
        public fmContacto()
        { 
            InitializeComponent();

            Titulo = "Contactos";
            Subtitulo = "Administra los contactos de la Empresa";
        }

        protected override void OnAddFields(DataGridView listado, ref ucEdicion propiedades)
        {
            listado
                .AddTextBoxColumn("ID", 50)
                .AddTextBoxColumn("Nombre", 200)
                .AddTextBoxColumn("Direccion", 150)
                .AddTextBoxColumn("Telefono", 100);
            propiedades = new ucContacto();
        }
        protected override void OnLoadData(DataGridView listado)
        {
            _("Itegracion.Comunicaciones", "Contacto", "TraerListado")
                .Out(listado);
        }
        protected override void OnNew(ucEdicion propiedades)
        {   
        }

        protected override bool AreDataValid(ModoMantenimiento modo, ucEdicion propiedades)
        {
            ucContacto uc = (ucContacto)propiedades;
            if (string.IsNullOrEmpty(uc.tbNombre.Text))
                return Error(uc.tbNombre, "Por favor, ingresa un nombre");

            if (string.IsNullOrEmpty(uc.tbDireccion.Text))
                return Error(uc.tbDireccion, "Por favor, ingresa una dirección");

            if (!Regex.IsMatch(uc.tbTelefono.Text, @"^[0-9]+$"))
                return Error(uc.tbTelefono, "Solo se aceptan numeros");

            return true;
        }
        protected override void OnSave(object id, ModoMantenimiento modo, ucEdicion propiedades)
        {
            ucContacto uc = (ucContacto)propiedades;
            Element rpta = new Element();
            if (modo == ModoMantenimiento.Nuevo)
                _("Itegracion.Comunicaciones", "Contacto", "Insertar", uc.tbID, uc.tbNombre, uc.tbDireccion, uc.tbTelefono)
                    .Out(rpta);
            if (modo == ModoMantenimiento.Edicion)
                _("Itegracion.Comunicaciones", "Contacto", "Modificar", uc.tbID, uc.tbNombre, uc.tbDireccion, uc.tbTelefono)
                    .Out(rpta);
        }
        protected override void OnEdit(string id, DataGridViewCell cell, ucEdicion propiedades)
        {
            ucContacto uc = (ucContacto)propiedades;
            _("Itegracion.Comunicaciones", "Contacto", "Traer", cell)
                .Out(uc.tbID, uc.tbNombre, uc.tbDireccion, uc.tbTelefono);
        }
        protected override bool OnDelete(string id, DataGridViewCell cell)
        {
            Element rpta = new Element();
            _("Itegracion.Comunicaciones", "Contacto", "Eliminar", cell)
                .Out(rpta);

            return true;
        }
    }
}
